A processor may have to communicate with a remote facility in order to perform its intended functions. These communications are carried out via a remote-communications protocol. An illustrative example of such a processor is a call-processing adjunct processor of a central office switch which must communicate with a database of telephone numbers via the Signaling System 7 (SS7) in order to perform its call-processing functions. The processing load may exceed the processing capacity of a single processor, in which case the processing load is often distributed among a plurality of the processors. An illustrative such distributed processing system is disclosed in U.S. Pat. No. 5,473,771. In that case, each of the processors typically needs its own communications link to the remote facility, as well as its own circuitry for terminating the link, in order to perform these functions. This is inefficient and costly: not only must the link and the link-terminating circuitry be replicated for each processor, but charges for the use of these links are typically incurred on a per-link basis. It would therefore be more efficient and less expensive if the plurality of processors could share the use of one or only a few communications links.
Distributed processing systems wherein a plurality of more-or-less co-located processors shares the system's processing load and is interconnected by a local area network (LAN), and wherein one of the processors acts as a communications server (e.g., an input/output processor) for all of them, are well known in the computer art. Such a system may be used to reduce the number of communications links and link-terminating circuits and thereby obtain the abovementioned efficiency and cost reduction. However, it may create problems of its own. Firstly, the communications protocol of the LAN is not likely to be the same protocol as is used on the remote-communications link. If the processing application that the system performs is protocol-dependent--as is, for example, the call-processing application described in U.S. Pat. No. 5,182,750--the application must be redesigned and reimplemented to accommodate the difference in protocols. This is often a time-consuming and a costly proposition. Secondly, the full termination of the remote-communications link's protocol may consume significant amounts of processing power, and hence create a processing bottleneck at the communications server if the communications link is heavily used. To lessen the bottleneck, a plurality of communications servers may be used in parallel, but this negates many of the benefits that were gained by using a communications server in the first place!
Alternatively, the abovementioned U.S. Pat. No. 5,182,750 teaches that different layers of a protocol may be processed on different processors. But even the teaching of that patent does not point the way out of the processing-bottleneck dilemma, for two reasons. First, it requires the inter-processor communications protocol to be the same as the protocol whose different layers are processed by the different processors. But, as was mentioned above, the communications protocol of the LAN is not likely to be the same protocol as is used on the remote-communications link. And second, it requires the protocol to be fully terminated on all of the processors. But it is the full termination of the protocol by the communications server in the scenario under discussion here that is presumed to have caused the processing bottleneck in the first place!